# -*- coding: utf-8 -*-

""" This file stores all the basic types of the engine support types.
"""


class IType:
    def __init__(self, type: str, bits: int = 0):
        self.type = type
        self.bits = bits

    def __str__(self):
        return str(self.type)


# Basic type.
ITypeInt = IType('int', 32)
ITypeFloat = IType('float', 32)
ITypeComplex = IType('complex', 32)
ITypeBool = IType('bool', 1)
ITypeStr = IType('str', -1)


class IGeneric:
    def __init__(self, type_mark):
        self.mark = type_mark
